package com.pactera.madp.cp.mapper.sync;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.pactera.madp.cp.api.dto.ContactRadarDto;
import com.pactera.madp.cp.api.entity.sync.MaRadarEntity;
import com.pactera.madp.cp.api.vo.ContactRadarVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @title 客户雷达表-MP接口定义
 * @date 2022-05-14
 * @author Deming.Chang
 */
public interface MaRadarMapper extends BaseMapper<MaRadarEntity> {

    /**
     * 处理客户雷达数据插入
     * @param lastMaxReceiveTime     本系统采集事件表上一次同步最大接收时间
     * @return
     */
    int handlerAndInsert(@Param("lastMaxReceiveTime") Long lastMaxReceiveTime);

    /**
     * 根据wxUserId查询最近3条客户动态雷达数据
     * @param wxUserId  企业微信用户id
     * @return          客户动态雷达数据top3
     */
    List<ContactRadarVO> top3(@Param("wxUserId") String wxUserId);

    /**
     * 分页查询客户动态雷达数据
     * @param page      分页组件
     * @param dto       查询条件实体
     * @return          客户动态雷达数据分页列表
     */
    IPage<ContactRadarVO> pageResult(
            Page page,
            @Param("dto") ContactRadarDto dto
    );

}
